/*
 * Copyright 2018-10-21 8:24:50 The JA-SIG Collaborative. All rights reserved.
 * distributed with thi file and available online at
 */
package com.lap.scp.erp.domain;

import java.util.Date;

import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import com.lap.scd.commons.domain.IntegerDO;

/**
 * <pre>
 *  出勤记录，其中一些通用字段在ModelDO和BaseDO里面，该对象基本上只用于数据保存使用。
 *   对应的表名：attendance
 *
 *	如果说界面业务复杂，有特别需要，需要在额外定义Bean对象来接收界面数据。
 * </pre>
 * 
 * @author 劳水生 Exp
 * @Date 2018-10-21 8:24:50
 * @since 2.0.0
 */
public class AttendanceDO extends IntegerDO {
	private static final long serialVersionUID = -1102538993325902675L;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	employee_id
	 * 备注:
	 *  员工id;字段的长度:11,是否必填:是。
	 * </pre>
	 */
	private Integer employeeId;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	payment_id
	 * 备注:
	 *  支付ID;字段的长度:11,是否必填:是。
	 * </pre>
	 */
	private Integer paymentId;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	work_date
	 * 备注:
	 *  上班时间;字段的长度:,是否必填:否。
	 * </pre>
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date workDate;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	start_work_time
	 * 备注:
	 *  上班时间;字段的长度:,是否必填:否。
	 * </pre>
	 */
	private String startWorkTime;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	end_work_time
	 * 备注:
	 *  下班时间;字段的长度:,是否必填:否。
	 * </pre>
	 */
	private String endWorkTime;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	status
	 * 备注:
	 *  状态，0-正常，1-迟到，2-旷工;字段的长度:11,是否必填:是。
	 * </pre>
	 */
	private Integer status;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	remark
	 * 备注:
	 *  备注;字段的长度:512,是否必填:否。
	 * </pre>
	 */
	private String remark;
	/**
	 * 员工基本信息
	 */
	private EmployeeDO employeeDO;
	/**
	 * 支付信息
	 */
	private PaymentDO paymentDO;

	// 页面处理字段
	/**
	 * 标识使用，处理逻辑需要
	 */
	private String sign;

	/**
	 * @param employeeId
	 */
	public void setEmployeeId(Integer employeeId) {
		this.employeeId = employeeId;
	}

	/**
	 * @return 员工id
	 */
	public Integer getEmployeeId() {
		return employeeId;
	}

	/**
	 * @param paymentId
	 */
	public void setPaymentId(Integer paymentId) {
		this.paymentId = paymentId;
	}

	/**
	 * @return 支付ID
	 */
	public Integer getPaymentId() {
		return paymentId;
	}

	/**
	 * 
	 * @return
	 */
	public Date getWorkDate() {
		return workDate;
	}

	/**
	 * 
	 * @param workDate
	 */
	public void setWorkDate(Date workDate) {
		this.workDate = workDate;
	}

	/**
	 * 
	 * @return
	 */
	public String getStartWorkTime() {
		return startWorkTime;
	}

	/**
	 * 
	 * @param startWorkTime
	 */
	public void setStartWorkTime(String startWorkTime) {
		this.startWorkTime = startWorkTime;
	}

	/**
	 * 
	 * @return
	 */
	public String getEndWorkTime() {
		return endWorkTime;
	}

	/**
	 * 
	 * @param endWorkTime
	 */
	public void setEndWorkTime(String endWorkTime) {
		this.endWorkTime = endWorkTime;
	}

	/**
	 * @param status
	 */
	public void setStatus(Integer status) {
		this.status = status;
	}

	/**
	 * @return 状态，0-正常，1-迟到，2-旷工
	 */
	public Integer getStatus() {
		return status;
	}

	/**
	 * @param remark
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * @return 备注
	 */
	public String getRemark() {
		return remark;
	}

	/**
	 * 
	 * @return
	 */
	public EmployeeDO getEmployeeDO() {
		return employeeDO;
	}

	/**
	 * 
	 * @param employeeDO
	 */
	public void setEmployeeDO(EmployeeDO employeeDO) {
		this.employeeDO = employeeDO;
	}

	/**
	 * @return the paymentDO
	 */
	public PaymentDO getPaymentDO() {
		return paymentDO;
	}

	/**
	 * @param paymentDO
	 */
	public void setPaymentDO(PaymentDO paymentDO) {
		this.paymentDO = paymentDO;
	}

	/**
	 * 
	 * @return
	 */
	public String getSign() {
		return sign;
	}

	/**
	 * 
	 * @param sign
	 */
	public void setSign(String sign) {
		this.sign = sign;
	}

	@Override
	public String toString() {
		return ReflectionToStringBuilder.toString(this);
	}

}
